package com.imooc.course.file.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class SpringMvcConfig implements WebMvcConfigurer {

    @Value("${file.path}")
    private String FILE_PATH;

    @Value("${file.ossPath}")
    private String FILE_OSS_PATH;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 以往外界访问图片是通过mvc接收到请求，再通过文件流从系统磁盘读取图片资源，再通过响应头返回给浏览器。
        // 这里只要是/file/f/开头的路径都会被这个处理器拦截，处理器处理完成后，再通过响应头返回给浏览器。
        registry.addResourceHandler("/f/**")
                .addResourceLocations("file:" + FILE_PATH)
                .addResourceLocations("file:" + FILE_OSS_PATH);
        // 比如浏览器访问 http://127.0.0.1:9003/file/f/teacher/6pH32Wba-web.png，
        // 然后会通过响应返回6pH32Wba-web.png这张图片给前端。
    }

}
